package edu.gatech.cs2340.teamrocket.control.turnlogic;

import java.util.List;

/**
 * Minimum amount of logic that the game must perform every turn in order to be
 * considering functioning at a basic level.
 *
 * @author Joe Tacheron
 */
public interface TurnLogic {

    /**
     * Perform all updates
     *
     * @return a list of updates that occurred of which the User must be notified
     */
    List<String> nextTurn();

    /**
     *
     * @return a list of updates that occurred of which the User must be notified
     */
    List<String> updateTravelers();

    /**
     *
     * @return a list of updates that occurred of which the User must be notified
     */
    List<String> updateInventory();

    /**
     *
     * @return a list of updates that occurred of which the User must be notified
     */
    List<String> updateMap();

    /**
     *
     * @return a list of updates that occurred of which the User must be notified
     */
    List<String> updateEnvironment();

    /**
     *
     * @return a list of updates that occurred of which the User must be notified
     */
    List<String> updateStats();

    /**
     *
     * @return a list of updates that occurred of which the User must be notified
     */
    void updateServer();
}
